﻿//---------------------------------------------------------------------------

#include "vcl_stl.h"
#pragma hdrstop

#include "h_i18n.h"

//---------------------------------------------------------------------------

namespace h_g
{

static map<UTF8String, UTF8String> StringMap;
static const wchar_t *StringArr[][4] =
{
   L"h_g:LOAD_FAIL",
      L"Load %s fail, %s",
      L"载入 %s 失败, %s",
      L"載入 %s 失敗, %s",
   L"h_g:LICENSE_NOT_FOUND",
      L"License not found, please contact the provider",
      L"授权没有找到, 请联系供应商",
      L"授權沒有找到，請聯繫供應商",
   L"h_g:LICENSE_FILE_DAMAGED",
      L"License file damaged, please contact the provider",
      L"授权文件损坏, 请联系供应商",
      L"授權文件損壞，請聯繫供應商",
   L"h_g:TRIAL_EXPIRED",
      L"Trial expired",
      L"试用期已过",
      L"試用期已過",
   L"h_g:NO_EXPIRATION",
      L"No expiration",
      L"无到期日",
      L"無到期日",
   L"h_g:ANY_PROJECT",
      L"Any project",
      L"任意项目",
      L"任意項目",

   L"h_server:NEED_YOUR_ATTENTION",
      L" need your attention",
      L" 需要注意",
      L" 需要注意",
   L"h_server:COMPLETED",
      L" completed",
      L" 完成",
      L" 完成",
   L"h_server:CREATE_SOCKET_ERROR",
      L"%s create socket error, r = %d",
      L"%s 创建 socket 错误, r = %d",
      L"%s 創建 socket 錯誤, r = %d",
   L"h_server:CONNECT_ERROR",
      L"%s connect(%s, %d) error, r = %d, ErrCode = %d",
      L"%s 连接(%s, %d) 错误, r = %d, ErrCode = %d",
      L"%s 連接(%s, %d) 錯誤, r = %d, ErrCode = %d",
   L"h_server:USER_CANCEL",
      L"user cancel",
      L"用户中断",
      L"用戶中斷",
   L"h_server:WRITE_ERROR",
      L"%s write error, r = %d, ErrCode = %d",
      L"%s 写入错误, r = %d, ErrCode = %d",
      L"%s 寫入錯誤, r = %d, ErrCode = %d",
   L"h_server:READ_ERROR",
      L"%s read error, r = %d, ErrCode = %d",
      L"%s 读取错误, r = %d, ErrCode = %d",
      L"%s 讀取錯誤, r = %d, ErrCode = %d",
   L"h_server:FAIL",
      L"%s fail",
      L"%s 失败",
      L"%s 失敗",
   L"h_server:INQUIRY_READ_LENGTH_ERROR",
      L"Inquiry read length error, r = %d, ErrCode = %d",
      L"Inquiry 读取长度错误, r = %d, ErrCode = %d",
      L"Inquiry 讀取長度錯誤, r = %d, ErrCode = %d",
   L"h_server:CAN_NOT_CREATE",
      L"can not create %s",
      L"不能创建 %s",
      L"不能創建 %s",
   L"h_server:TEXT_FILE_DECOMPRESS_FAIL",
      L"%s TextFileDecompress fail",
      L"%s TextFileDecompress 失败",
      L"%s TextFileDecompress 失敗",
   L"h_server:DOWNLOAD_COMPLETED",
      L"%s download completed",
      L"%s 下载完成",
      L"%s 下載完成",
   L"h_server:LOG_OF_JOB",
      L"Log of job %s",
      L"作业 %s 的日志",
      L"作業 %s 的日誌",
   L"h_server:ADDITIONAL_LOG_OF_JOB",
      L"Additional log of job %s",
      L"作业 %s 的附加日志",
      L"作業 %s 的附加日誌",
   L"h_server:ACCESS_DENIED",
      L"access denied",
      L"访问被拒",
      L"訪問被拒",
   L"h_server:LOGIN_FAIL",
      L"login fail",
      L"登录失败",
      L"登錄失敗",
   L"h_server:SUMMARY",
      L"Summary",
      L"作业汇总",
      L"作業匯總",
   L"h_server:FAILED_JOB_LIST",
      L"Failed job list",
      L"失败作业列表",
      L"失敗作業列表",
   L"h_server:TOP_20_JOB_LIST",
      L"Top 20 job list",
      L"最慢20作业列表",
      L"最慢20作業列表",
   L"h_server:LOAD_FAIL",
      L"Load %s fail, %s",
      L"载入 %s 失败, %s",
      L"載入 %s 失敗, %s",
   L"h_server:BATCH_NOT_STARTED",
      L"Batch not started",
      L"批量未启动",
      L"批量未啟動",
   L"h_server:BATCH_IS_STOPPED",
      L"Batch is stopped",
      L"批量已停止",
      L"批量已停止",
   L"h_server:BATCH_IS_PAUSED",
      L"Batch is paused",
      L"批量已暂停",
      L"批量已暫停",
   L"h_server:BATCH_IS_STARTED",
      L"Batch is started",
      L"批量已启动",
      L"批量已啟動",
   L"h_server:JOB_IS_WAITING",
      L"Job %s is waiting",
      L"作业 %s 正在等待",
      L"作業 %s 正在等待",
   L"h_server:JOB_IS_FAILED",
      L"Job %s is failed",
      L"作业 %s 失败",
      L"作業 %s 失敗",
   L"h_server:JOB_IS_NOT_STARTED_YET",
      L"Job %s is not started yet",
      L"作业 %s 未启动",
      L"作業 %s 未啟動",
   L"h_server:JOB_IS_TIMED_OUT",
      L"Job %s is timed out",
      L"作业 %s 超时",
      L"作業 %s 超時",
   L"h_server:BATCH_IS_NOT_COMPLETED_YET",
      L"Batch %s is not completed yet",
      L"批量 %s 未结束",
      L"批量 %s 未結束",
   L"h_server:BATCH_IS_NOT_STARTED_YET",
      L"Batch %s is not started yet",
      L"批量 %s 未启动",
      L"批量 %s 未啟動",
   L"h_server:FILE_SYSTEM_IS_ALMOST_FULL",
      L"File system is almost full",
      L"文件系统快满了",
      L"文件系統快滿了",
   L"h_server:SYSTEM_IS_RESTARTED",
      L"System is restarted",
      L"系统重新启动过",
      L"系統重新啟動過",
   L"h_server:HOTBACK_FAIL",
      L"Hotback fail",
      L"热备失败",
      L"熱備失敗",
   L"h_server:CRITICAL_PATH",
      L"Critical Path",
      L"关键路径",
      L"關鍵路徑",

   L"h_stage:BATCH_HINT",
      L"Type        : BATCH\nName        : %s\nHost        : %s\nBatch       : %s\nTag        : %s",
      L"类型        : 批量\n名称        : %s\n主机名     : %s\n批量        : %s\n标签        : %s",
      L"類型        : 批量\n名稱        : %s\n主機名     : %s\n批量        : %s\n標籤        : %s",
   L"h_stage:JOB_HINT",
      L"Type        : JOB\nName        : %s\nCommand     : %s\nTag         : %s",
      L"类型        : 作业\n名称        : %s\n命令        : %s\n标签        : %s",
      L"類型        : 作業\n名稱        : %s\n命令        : %s\n標籤        : %s",
   L"h_stage:DESCRIPTION",
      L"\nDescription : ",
      L"\n描述        : ",
      L"\n描述        : ",
   L"h_stage:CONNECTOR_HINT",
      L"Type        : CONNECTOR\nHide arrow  : %s",
      L"类型        : 连接器\n隐藏箭头    : %s",
      L"類型        : 連接器\n隱藏箭頭    : %s",
   L"h_stage:EXTERN_JOB_HINT",
      L"Type        : EXTERN JOB\nGroup       : %s\nJob         : %s",
      L"类型        : 外部作业\n组          : %s\n作业        : %s",
      L"類型        : 外部作業\n組          : %s\n作業        : %s",
   L"h_stage:EVENT_FIRE_HINT",
      L"Type        : EVENT FIRE\nHost name   : %s\nEvent       : %s",
      L"类型        : 触发事件\n主机名      : %s\n事件        : %s",
      L"類型        : 觸發事件\n主機名      : %s\n事件        : %s",
   L"h_stage:EVENT_WAIT_HINT",
      L"Type        : EVENT WAIT",
      L"类型        : 等待事件",
      L"類型        : 等待事件",
   L"h_stage:EVENT",
      L"\nEvent       : ",
      L"\n事件        : ",
      L"\n事件        : ",
   L"h_stage:WAIT_FILE",
      L"\nWait file   : ",
      L"\n等待文件    : ",
      L"\n等待文件    : ",
   L"h_stage:WAIT_TIME",
      L"\nWait time   : ",
      L"\n等待时间    : ",
      L"\n等待時間    : ",
   L"h_stage:WAIT_COMMAND",
      L"\nWait command: ",
      L"\n等待命令    : ",
      L"\n等待命令    : ",
   L"h_stage:GROUP_HINT",
      L"Type        : GROUP\nGroup      : %s",
      L"类型        : 作业组\n组         : %s",
      L"類型        : 作業組\n組         : %s",
   L"h_stage:AT_THE_MOMENT",
      L"At the moment",
      L"指定时间",
      L"指定時間",
   L"h_stage:DURATION_FROM_THE_BATCH_STARTING",
      L"Duration from the batch starting",
      L"从批量开始经过的时间",
      L"從批量開始經過的時間",
   L"h_stage:DURATION_FROM_THE_JOB_STARTING",
      L"Duration from the job starting",
      L"从作业开始经过的时间",
      L"從作業開始經過的時間",

   L"t_mainform:OUT_OF_WINDOW",
      L"Can not start batch, out of window '%s'",
      L"不能启动批量，不在时间窗口 '%s' 内",
      L"不能啟動批量，不在時間窗口 '%s' 內",
   L"t_mainform:START_BATCH_OF",
      L"Start batch '%s' of '%s'?",
      L"启动批量 '%s'（位于 '%s'）?",
      L"啟動批量 '%s'（位於 '%s'）?",
   L"t_mainform:PAUSE_BATCH_OF",
      L"Pause batch of '%s'?",
      L"暂停位于 '%s' 的批量?",
      L"暫停位於 '%s' 的批量?",
   L"t_mainform:PAUSE_BATCH_SUCCESSFULLY",
      L"Pause batch successfully",
      L"暂停批量成功",
      L"暫停批量成功",
   L"t_mainform:STOP_BATCH_OF",
      L"Stop batch of '%s'?",
      L"停止位于 '%s' 的批量?",
      L"停止位於 '%s' 的批量?",
   L"t_mainform:LAST_CHANCE_STOP_BATCH",
      L"Last chance, do you really want to cancel the batch?",
      L"最后的机会, 真的要停止批量么?",
      L"最後的機會，真的要停止批量麼?",
   L"t_mainform:STOP_BATCH_SUCCESSFULLY",
      L"Stop batch successfully",
      L"停止批量成功",
      L"停止批量成功",
   L"t_mainform:CONTINUE_BATCH_OF",
      L"Continue batch of '%s'?",
      L"继续位于 '%s' 的批量?",
      L"繼續位於 '%s' 的批量?",
   L"t_mainform:CONTINUE_BATCH_SUCCESSFULLY",
      L"Continue batch successfully",
      L"继续批量成功",
      L"繼續批量成功",
   L"t_mainform:SKIP_JOB",
      L"Skip job '%s'?",
      L"跳过作业 '%s'?",
      L"跳過作業 '%s'?",
   L"t_mainform:RESTORE_JOB",
      L"Restore job '%s'?",
      L"恢复作业 '%s'?",
      L"恢復作業 '%s'?",
   L"t_mainform:RERUN_JOB",
      L"Rerun job '%s'?",
      L"重跑作业 '%s'?",
      L"重跑作業 '%s'?",
   L"t_mainform:STOP_JOB",
      L"Stop job '%s'?",
      L"停止作业 '%s'?",
      L"停止作業 '%s'?",
   L"t_mainform:STOP_AND_SKIP_JOB",
      L"Stop and skip job '%s'?",
      L"停止并跳过作业 '%s'?",
      L"停止並跳過作業 '%s'?",
   L"t_mainform:FIRE_EVENT",
      L"Fire event '%s'?",
      L"触发事件 '%s'?",
      L"觸發事件 '%s'?",
   L"t_mainform:RESTART_JOB",
      L"Restart job '%s'?",
      L"重新开始作业 '%s'?",
      L"重新開始作業 '%s'?",
   L"t_mainform:SAVE_STATUS_FILE_AS",
      L"Save status file as",
      L"将状态文件保存到",
      L"將狀態文件保存到",
   L"t_mainform:LOAD_STATUS_FILE",
      L"Load status file",
      L"载入状态文件",
      L"載入狀態文件",
   L"t_mainform:BREAKPOINT",
      L"Set/Unset breakpoint of '%s'?",
      L"设置/取消作业 '%s' 断点?",
      L"設置/取消停止作業 '%s' 斷點?",
   L"t_mainform:BATCH_INTERVAL_TOO_SHORT",
      L"Batch interval can not be < '%s'",
      L"批量间隔不能 < '%s'",
      L"批量間隔不能 < '%s'",

   L"t_normaljobform:PARTITION_ID",
      L"Partition ID",
      L"分区标识",
      L"分區標識",
   L"t_normaljobform:STATUS",
      L"Status",
      L"状态",
      L"狀態",
   L"t_normaljobform:RESTORE_STATUS",
      L"Restore Status",
      L"恢复状态",
      L"恢復狀態",
   L"t_normaljobform:START_TIME",
      L"Start Time",
      L"启动时间",
      L"啟動時間",
   L"t_normaljobform:END_TIME",
      L"End Time",
      L"结束时间",
      L"結束時間",
   L"t_normaljobform:ELAPSED",
      L"Elapsed",
      L"耗费时间",
      L"耗費時間",
   L"t_normaljobform:PROCESS_ID",
      L"Process ID",
      L"进程号",
      L"進程號",
   L"t_normaljobform:SERVER_ID",
      L"Server ID",
      L"服务器",
      L"服務器",
   L"t_normaljobform:SKIP_JOB",
      L"Skip job '%s'?",
      L"跳过作业 '%s'?",
      L"跳過作業 '%s'?",
   L"t_normaljobform:RESTORE_JOB",
      L"Restore job '%s'?",
      L"恢复作业 '%s'?",
      L"恢復作業 '%s'?",
   L"t_normaljobform:RERUN_JOB",
      L"Rerun job '%s'?",
      L"重跑作业 '%s'?",
      L"重跑作業 '%s'?",
   L"t_normaljobform:STOP_JOB",
      L"Stop job '%s'?",
      L"停止作业 '%s'?",
      L"停止作業 '%s'?",

   L"h_portal:OUTLINE_HINT",
      L"Start Time   : %s\nEnd  Time    : %s\nCompleted(%%) : %s\n\n%s\n\n%s",
      L"开始时间     : %s\n结束时间     : %s\n完成度(%%)    : %s\n\n%s\n\n%s",
      L"開始時間     : %s\n結束時間     : %s\n完成度(%%)    : %s\n\n%s\n\n%s",

   L"t_batchform:CONFIGURE",
      L"Configure?",
      L"修改配置?",
      L"修改配置?",
   L"t_batchform:CHANGE_DATE",
      L"Change Date?",
      L"修改日期?",
      L"修改日期?",
   L"t_batchform:SUCCESS",
      L"Success",
      L"成功",
      L"成功",

   L"t_listform:NAME",
      L"NAME",
      L"名称",
      L"名稱",
   L"t_listform:PART",
      L"PART",
      L"分区",
      L"分區",
   L"t_listform:STATUS",
      L"STATUS",
      L"状态",
      L"狀態",
   L"t_listform:START_TIME",
      L"START TIME",
      L"开始时间",
      L"開始時間",
   L"t_listform:END_TIME",
      L"END TIME",
      L"结束时间",
      L"結束時間",
   L"t_listform:ELAPSED",
      L"ELAPSED",
      L"耗时",
      L"耗時",
   L"t_listform:COMMAND",
      L"COMMAND",
      L"命令",
      L"命令",
   L"t_listform:TAG",
      L"TAG",
      L"标签",
      L"標籤",
   L"t_listform:RUNNING",
      L"RUNNING",
      L"运行中",
      L"運行中",
   L"t_listform:WAITING",
      L"WAITING",
      L"就绪",
      L"就緒",
   L"t_listform:SUCCESS",
      L"SUCCESS",
      L"成功",
      L"成功",
   L"t_listform:FAIL",
      L"FAIL",
      L"失败",
      L"失敗",
   L"t_listform:IMBALANCED",
      L"IMBALANCED(%)",
      L"不均衡度(%)",
      L"不均衡度(%)",
   L"t_listform:ELAPSED_TOTAL",
      L"ELAPSED TOTAL",
      L"总耗时",
      L"總耗時",
   L"t_listform:DESCRIPTION",
      L"DESCRIPTION",
      L"描述",
      L"描述",

   L"t_batlistform:NO.",
      L"No.",
      L"序号",
      L"序號",
   L"t_batlistform:NAME",
      L"NAME",
      L"名称",
      L"名稱",
   L"t_batlistform:DESCRIPTION",
      L"DESCRIPTION",
      L"描述",
      L"描述",
   L"t_batlistform:STATUS",
      L"STATUS",
      L"状态",
      L"狀態",
   L"t_batlistform:START_TIME",
      L"START TIME",
      L"开始时间",
      L"開始時間",
   L"t_batlistform:END_TIME",
      L"END TIME",
      L"结束时间",
      L"結束時間",
   L"t_batlistform:ELAPSED",
      L"ELAPSED",
      L"耗时",
      L"耗時",
   L"t_batlistform:BATCH_DATE",
      L"BATCH DATE",
      L"批量日期",
      L"批量日期",
   L"t_batlistform:NEXT_SCHEDULE_DATE",
      L"NEXT SDL DATE",
      L"下一调度日期",
      L"下一調度日期",

   L"t_ganttform:TIME_FORMAT_ERROR",
      L"Time format error",
      L"时间格式错误",
      L"時間格式錯誤",
   L"t_ganttform:TIME_RANGE_ERROR",
      L"Time range error",
      L"时间范围错误",
      L"時間範圍錯誤",
   L"t_ganttform:GANTT_SAVED",
      L"The gantt chart have been saved to %s",
      L"甘特图已保存到 %s",
      L"甘特圖已保存到 %s",
   L"t_ganttform:FONT_NAME",
      L"Arial",
      L"Arial",
      L"Arial",
   L"t_ganttform:SAVE_GANTT_AS",
      L"Save the gantt chart as",
      L"将甘特图保存到",
      L"將甘特圖保存到",

   L"t_downloadform:SAVE_FILE_AS",
      L"Save file as",
      L"将文件保存到",
      L"將文件保存到",

   L"t_concurrencyform:INCORRECT_END_TIME_FORMAT",
      L"Incorrect end time format",
      L"结束时间格式错误",
      L"結束時間格式錯誤",

   L"t_concurrencyform:SAVE_CHART_AS",
      L"Save chart as",
      L"将图保存到",
      L"將圖保存到",

   L"h_g:ENTERPRISE_EDITION",
      L" (   Enterprise Edition   )",
      L" (   企业版   )",
      L" (   企業版   )",

   L"h_g:COMMUNITY_EDITION",
      L" (   Community Edition   )",
      L" (   社区版   )",
      L" (   社區版   )",

   L"h_g:ENTERPRISE_ONLY",
      L"This feature is only available in the Enterprise Edition",
      L"本功能只包含在企业版中",
      L"本功能只包含在企業版中",

   NULL
};

void __fastcall I18nInit(int Idx)
{
   StringMap.clear();

   for ( int i = 0; StringArr[i][0] != NULL; i++ )
   {
      StringMap[StringArr[i][0]] = StringArr[i][Idx];
   }
}

const char * __fastcall I18nString(const char *Key)
{
   if ( StringMap.find(Key) == StringMap.end() )
   {
      return Key;
   }

   return StringMap[Key].c_str();
}

};

#pragma package(smart_init)
